/*******************************************************************************
 * Copyright (C) 2016, Huada Semiconductor Co.,Ltd All rights reserved.
 *
 * This software is owned and published by:
 * Huada Semiconductor Co.,Ltd ("HDSC").
 *
 * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
 * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
 *
 * This software contains source code for use with HDSC
 * components. This software is licensed by HDSC to be adapted only
 * for use in systems utilizing HDSC components. HDSC shall not be
 * responsible for misuse or illegal use of this software for devices not
 * supported herein. HDSC is providing this software "AS IS" and will
 * not be responsible for issues arising from incorrect user implementation
 * of the software.
 *
 * Disclaimer:
 * HDSC MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
 * REGARDING THE SOFTWARE (INCLUDING ANY ACCOMPANYING WRITTEN MATERIALS),
 * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
 * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
 * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
 * WARRANTY OF NONINFRINGEMENT.
 * HDSC SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
 * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
 * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
 * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
 * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
 * SAVINGS OR PROFITS,
 * EVEN IF Disclaimer HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
 * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
 * FROM, THE SOFTWARE.
 *
 * This software may be replicated in part or whole for the licensed use,
 * with the restriction that this Disclaimer and Copyright notice must be
 * included with each copy of this software, whether used in part or whole,
 * at all times.
 */
/******************************************************************************/
/** \file main.c
 **
 ** \brief This is example of IAP.
 **
 **   - 2019-08-21  1.0  Chenw first version.
 **
 ******************************************************************************/

/*******************************************************************************
 * Include files
 ******************************************************************************/
#include "iap.h"
#include "sysctrl.h"
#include "gpio.h"

/*******************************************************************************
 * Local type definitions ('typedef')
 ******************************************************************************/

/*******************************************************************************
 * Local pre-processor symbols/macros ('#define')
 ******************************************************************************/

/*******************************************************************************
 * Global variable definitions (declared in header file with 'extern')
 ******************************************************************************/

/*******************************************************************************
 * Local function prototypes ('static')
 ******************************************************************************/

/*******************************************************************************
 * Local variable definitions ('static')
 ******************************************************************************/


#define EN_VBAT_PORT	GPIOB
#define EN_VBAT_PIN		GPIO_PIN_02

#define EN_VBAT_ON		REG_WRITE(EN_VBAT_PORT->BSRR, EN_VBAT_PIN)
#define EN_VBAT_OFF		REG_WRITE(EN_VBAT_PORT->BRR, EN_VBAT_PIN)


#define K2_PORT				GPIOA
#define K2_PIN				GPIO_PIN_00

/*******************************************************************************
 * Function implementation - global ('extern') and local ('static')
 ******************************************************************************/
void sys_pwoer_on(void)
{
	
	stc_gpio_init_t stcGpioInit = {0};
	
	SYSCTRL_PeriphClkEnable(SYSCTRL_PERICLK_PA);
	SYSCTRL_PeriphClkEnable(SYSCTRL_PERICLK_PB);
	SYSCTRL_PeriphClkEnable(SYSCTRL_PERICLK_PC);
	SYSCTRL_PeriphClkEnable(SYSCTRL_PERICLK_PD);
		
    SYSCTRL->CR3 = 0x5A5Au;
    SYSCTRL->CR3 = 0xA5A5u;
	SYSCTRL->CR1 |= 0x08;
	
	stcGpioInit.u32Mode = GPIO_MODE_OUTPUT_PP;
	stcGpioInit.u32Pin  = EN_VBAT_PIN;
	stcGpioInit.u32Pull = GPIO_PULL_NONE;
	GPIO_Init(EN_VBAT_PORT,&stcGpioInit);
	EN_VBAT_ON;


	stcGpioInit.u32Mode = GPIO_MODE_INPUT | GPIO_MODE_EXTI;
	stcGpioInit.u32Pin  = K2_PIN;
	stcGpioInit.u32Pull = GPIO_PULL_NONE;
	stcGpioInit.u32ExtI = GPIO_EXTI_FALLING;
	GPIO_Init(K2_PORT,&stcGpioInit);

}

/**
 *******************************************************************************
 ** \brief  IAP 主函数
 **
 ** \param  None
 **
 ** \retval int32_t Return value, if needed
 **
 ******************************************************************************/
int32_t main(void)
{
	// bat_power_en
	
	
    IAP_UpdateCheck();
    IAP_Init();
    IAP_Main();
}

/*******************************************************************************
 * EOF (not truncated)
 ******************************************************************************/

